package com.imooc.ShunXu;
/**
 * 
 * 静态块、非静态块、构造方法，三者之间的执行顺序。
 * 
 *    结论：先执行父类静态块在执行子类静态块，再返回来执行父类非静态块，然后在执行父类
 *构造方法，然后在执行子类非静态块，最后执行子类构造方法。
 *
 *执行顺序：
 *父类静态块、子类静态块、父类非静态块、父类构造方法、子类非静态块、子类构造方法
 *
 *如果只是单单的创建父类对象执行结果如下：
 *      父类静态块、父类非静态块、父类构造方法
 *      
 * Java中的静态代码块是在虚拟机加载类的时候，就执行的，而且只执行一次。如
 * 果static代码块有多个，JVM将按照它们在类中出现的先后顺序依次执行它们，每
 * 个代码块只会被执行一次。     
 * 
 * 非静态代码块是在类new一个实例的时候执行，而且是每次new对象实例都会执行。
 */
public class test {

	public static void main(String[] args) {
//		A a = new A();
		B b = new B();
		System.out.println();
		B b2 = new B();
		System.out.println();
		B b3 = new B();

	}

}
